package network.netty.coding;

import io.netty.buffer.ByteBuf;
import io.netty.channel.ChannelHandlerContext;
import io.netty.handler.codec.MessageToByteEncoder;
import network.netty.Package.TransferPackageWrap;

/**
 * <p>
 * 自定义消息编码器
 * </p>
 *
 * @author LovelyBigDuck
 * @date 2021/5/29 20:54
 */
public class ChatMessageToByteEncoder extends MessageToByteEncoder<TransferPackageWrap> {
    @Override
    protected void encode(ChannelHandlerContext ctx, TransferPackageWrap msg, ByteBuf out) throws Exception {
        // 这里发送数据顺序必须和数据接收端保持一致
        // 发送数据包长度
        out.writeInt(msg.getLength());
        // 发送数据包
        out.writeBytes(msg.getBytes());
    }
}
